package org.redmagic.service.dao;

import java.util.List;

import javax.annotation.Nonnull;
import javax.annotation.ParametersAreNonnullByDefault;

import org.redmagic.service.domain.Property;

/**
 * The {@link GroupDao} provides us with an abstract way
 * of managing "groups" which are a way of logically organizing
 * various properties.
 */
@ParametersAreNonnullByDefault
public interface GroupDao {

    /**
     * @return Returns a list containing all of the groups available.
     */
	@Nonnull
	List<String> getGroups();
	
	/**
	 * @return Returns a list of properties for the specified group.
	 */
	@Nonnull
	List<Property> getProperties(String group);
}
